/********************************************************************************************************
 * @file    lcd_2inch_drv.c
 *
 * @brief   This is the source file for TL7518/TL721X/TL321X
 *
 * @author  Driver Group
 * @date    2024
 *
 * @par     Copyright (c) 2024, Telink Semiconductor (Shanghai) Co., Ltd. ("TELINK")
 *
 *          Licensed under the Apache License, Version 2.0 (the "License");
 *          you may not use this file except in compliance with the License.
 *          You may obtain a copy of the License at
 *
 *              http://www.apache.org/licenses/LICENSE-2.0
 *
 *          Unless required by applicable law or agreed to in writing, software
 *          distributed under the License is distributed on an "AS IS" BASIS,
 *          WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *          See the License for the specific language governing permissions and
 *          limitations under the License.
 *
 *******************************************************************************************************/
#include "lcd_2inch_drv.h"
#include <string.h>
#include <stdlib.h> //itoa()
#include "common.h"


#define GSPI_TX_DMA_CHN   DMA3

#define DEV_Digital_Write gpio_set_level
#define DEV_Delay_ms      delay_ms
#define SPI_CLK           48000000

#define LCD_CS            GPIO_PA0
#define LCD_BL            GPIO_PC3
#define LCD_RST           GPIO_PC1
#define LCD_DC            GPIO_PD1

gspi_pin_config_t lcd_pin_config = {
    .spi_csn_pin      = GPIO_FC_PA0,
    .spi_clk_pin      = GPIO_FC_PA1,
    .spi_mosi_io0_pin = GPIO_FC_PC2,
    .spi_miso_io1_pin = GPIO_NONE_PIN, //3line mode is required, otherwise it is NONE_PIN.
    .spi_io2_pin      = GPIO_NONE_PIN, //quad  mode is required, otherwise it is NONE_PIN.
    .spi_io3_pin      = GPIO_NONE_PIN, //quad  mode is required, otherwise it is NONE_PIN.
};

void DEV_SPI_WriteByte(unsigned char byte)
{
    spi_master_write(GSPI_MODULE, &byte, 1);
}

void DEV_SPI_Write_nByte(unsigned char *image, int len)
{
    spi_master_write(GSPI_MODULE, image, len);
}

const unsigned char gImage_70X70[9800] = {
    /* 0X00,0X10,0X46,0X00,0X46,0X00,0X01,0X1B, */
    0XFF, 0XFF, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XEF, 0XFF, 0XEF, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF,
    0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7,
    0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0X9E, 0XE7, 0XBF, 0XE7, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XBE, 0XE7, 0XFA, 0X9D, 0XBB,
    0X85, 0XDB, 0X7D, 0XDC, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDC, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDC, 0X7D,
    0XDB, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDC, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDC, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDC, 0X7D, 0XDB, 0X7D, 0XDB, 0X7D, 0XDC, 0X7D, 0XDB,
    0X7D, 0XDC, 0X7D, 0XBC, 0X7D, 0XDC, 0X7D, 0X3A, 0X65, 0X7B, 0X6D, 0XFC, 0X7D, 0XDC, 0X85, 0X3D, 0X96, 0XBE, 0XAE, 0XDE, 0XB6, 0XFF, 0XE7, 0XFF, 0XE7, 0XFF, 0XEF, 0XFF, 0XFF,
    0XFE, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5A, 0X6D, 0X5E, 0X45, 0X5E, 0X3D, 0X3E, 0X3D,
    0X3E, 0X45, 0X3E, 0X3D, 0X3E, 0X3D, 0X3F, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E,
    0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D,
    0X3E, 0X3D, 0X7F, 0X3D, 0X5E, 0X3D, 0XFD, 0X34, 0X3E, 0X45, 0XFD, 0X3C, 0XFC, 0X44, 0XFB, 0X44, 0X57, 0X44, 0X98, 0X4C, 0X5A, 0X75, 0X3E, 0XC7, 0XFF, 0XEF, 0XFF, 0XF7, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XE7, 0X5B, 0X65, 0X5F, 0X3D, 0X5F, 0X35, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X3E, 0X3D, 0X5F,
    0X3D, 0X7E, 0X3D, 0X3D, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5D, 0X3D, 0X5E, 0X45, 0X3D, 0X45, 0X1C, 0X45, 0XFB, 0X44, 0X9C, 0X65, 0X1C, 0X8E, 0XFD, 0XC6, 0XFF, 0XF7, 0XFF, 0XF7,
    0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XE7, 0X7C, 0X65, 0X5F, 0X3D, 0X7F, 0X3D, 0X3E, 0X3D, 0X3D, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X45,
    0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E,
    0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45,
    0X7F, 0X4D, 0X3D, 0X3D, 0X5F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X45, 0X3E, 0X3D, 0X1D, 0X45, 0XB9, 0X44, 0X5D, 0X8E, 0XDF, 0XDF, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X7C, 0X65, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X3E,
    0X45, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45,
    0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X3D, 0X3E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0XFB, 0X3C, 0XD8, 0X54, 0X7C, 0X9E, 0X5E, 0XD7, 0XFF, 0XF7, 0XDF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F,
    0XDF, 0X7B, 0X65, 0X5F, 0X45, 0X5E, 0X45, 0X3D, 0X45, 0X5E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5D, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X45, 0X3D, 0X45, 0X5E, 0X45, 0X5D, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0XFB, 0X3C, 0X1A, 0X65, 0X9C, 0XB6, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XE7, 0X5B, 0X65, 0X5F, 0X45,
    0X5E, 0X3D, 0X5D, 0X45, 0X3E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5F, 0X45, 0X5F, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X3D,
    0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X3E, 0X3D, 0X7F, 0X3D, 0X3E, 0X3D, 0XFB, 0X44, 0XD8, 0X4C, 0XBE, 0XAE, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XE7, 0X5B, 0X65, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E,
    0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45,
    0X5F, 0X3D, 0X5F, 0X3D, 0X3E, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0X1C, 0X3D, 0XFA, 0X4C, 0XFE, 0XB6, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5C, 0X65, 0X5F, 0X3D, 0X5F, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45,
    0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X3D, 0X5D, 0X3D, 0X5F, 0X3D, 0X3E, 0X35, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X3D, 0X5E,
    0X45, 0X5E, 0X45, 0X5E, 0X45, 0X7E, 0X3D, 0X3D, 0X3D, 0XB9, 0X44, 0XDB, 0X8D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5C, 0X65, 0X5F, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X3E, 0X45, 0X3E,
    0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X1D, 0X3D, 0X5D, 0X45, 0X3D, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0XDB, 0X4C, 0XFB, 0X8D, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XBF, 0XDF, 0X5B, 0X65, 0X5F, 0X45, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5F, 0X45, 0X5E, 0X3D,
    0X5F, 0X3D, 0X1B, 0X45, 0XD9, 0X5C, 0X1D, 0X7E, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F,
    0X35, 0X3E, 0X45, 0XFB, 0X44, 0XFB, 0X8D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF,
    0X5B, 0X65, 0X5F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0XFB, 0X3C, 0X7A, 0X7D, 0XFF,
    0XE7, 0X1B, 0X8E, 0X3C, 0X4D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45,
    0XDA, 0X4C, 0X3C, 0X9E, 0XFF, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5F, 0X45, 0X5F,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X3F, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3D, 0X45, 0X5D, 0X45, 0X5D, 0X45, 0X5E, 0X45, 0X1D, 0X45, 0X7A, 0X6D, 0X7E, 0XDF, 0XFF, 0XFF, 0X1B, 0X8E, 0X1D, 0X45,
    0X3E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0XBA, 0X44, 0X7D,
    0XA6, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D,
    0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0XFC, 0X3C, 0XD9, 0X4C, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XF7, 0X1B, 0X8E, 0X1C, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5F, 0X45, 0X5F, 0X3D, 0X3E, 0X35, 0XDA, 0X4C, 0X1E, 0XC7, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E,
    0X45, 0X3E, 0X45, 0X1D, 0X45, 0X5A, 0X5D, 0X1E, 0XC7, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XF7, 0X1B, 0X8E, 0X1C, 0X45, 0X3E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X7E, 0X45, 0X1C, 0X45, 0X3A, 0X5D, 0XFF, 0XEF, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3D, 0X45, 0X57, 0X44,
    0XDF, 0XD7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X1B, 0X8E, 0X3D, 0X4D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E,
    0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X7E, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X1D, 0X45, 0X1C, 0X96, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3D, 0X3D, 0X5B, 0X65, 0X5F, 0XC7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X1B, 0X8E, 0X1C, 0X45, 0X3E, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45,
    0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0XFA, 0X54, 0XDE, 0XB6, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5C,
    0X65, 0X5F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5F, 0X45, 0X5E, 0X3D, 0X5D, 0X45, 0X9A, 0X44, 0X7C, 0XAE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7,
    0X1B, 0X8E, 0X3C, 0X4D, 0X3E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X3F, 0X45, 0X5E,
    0X3D, 0X5E, 0X35, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X39, 0X6D, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5C, 0X65, 0X5F, 0X45, 0X5E, 0X3D,
    0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45,
    0X5E, 0X3D, 0X5E, 0X45, 0X3D, 0X3D, 0XFA, 0X54, 0XDE, 0XB6, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X1B, 0X96, 0X3D, 0X45, 0X3E,
    0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X3E, 0X45, 0X3F, 0X45, 0X5F, 0X3D, 0X7E, 0X3D, 0X5E, 0X3D,
    0X3E, 0X45, 0X1E, 0X3D, 0XBA, 0X44, 0XDD, 0XB6, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X3E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0XFC,
    0X3C, 0X7E, 0X9E, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X1B, 0X96, 0X3C, 0X45, 0X3E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X3E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X7E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5F, 0X3D, 0X3D,
    0X45, 0XB8, 0X4C, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E,
    0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X1D, 0X3D, 0X1F, 0X66, 0X3D, 0X86, 0X5C, 0XA6,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X1B, 0X96, 0X3C, 0X45, 0X3E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X3E,
    0X45, 0X3D, 0X45, 0X3D, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5F, 0X3D, 0X5E, 0X3D, 0X3B, 0X45, 0X1B, 0X9E,
    0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X1D, 0X3D, 0XDB, 0X44, 0XDA, 0X3C, 0XDB, 0X3C, 0XDB, 0X3C, 0XDA, 0X44, 0XDA,
    0X44, 0XDA, 0X44, 0XDB, 0X44, 0XFC, 0X44, 0X3D, 0X45, 0X5E, 0X45, 0X3E, 0X3D, 0X7E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X1C, 0X45, 0XDA, 0X44, 0XDA, 0X44, 0XDA, 0X44,
    0XDB, 0X3C, 0XFC, 0X3C, 0X5D, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0X1D, 0X3D, 0X78, 0X3C, 0XBD, 0XAE, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X1B, 0X96, 0X3D, 0X45, 0X3E, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0X1C, 0X45, 0XB9, 0X44, 0XB9, 0X44, 0XB9, 0X44, 0XBA, 0X44,
    0XDB, 0X44, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X3D, 0X3F, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5D, 0X45, 0XBC, 0X75, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF,
    0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X7E, 0X55, 0XBF, 0X96, 0XDE, 0X9E, 0XDF, 0X9E, 0XDF, 0X9E, 0XDF, 0XA6, 0XDF, 0X9E, 0XDF, 0XA6, 0XBF, 0XA6,
    0X1D, 0X8E, 0XDB, 0X44, 0X3E, 0X45, 0X5D, 0X3D, 0X3E, 0X45, 0X3F, 0X45, 0X7E, 0X3D, 0X1D, 0X3D, 0X1E, 0X76, 0XBF, 0XA6, 0XDF, 0XA6, 0XDF, 0XA6, 0XFF, 0XA6, 0X5E, 0X86, 0XFB,
    0X3C, 0X5D, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5A, 0X65, 0XDF, 0XE7, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XF7, 0X1B, 0X96, 0X3D, 0X45, 0X3F, 0X45, 0X7E, 0X3D, 0XFD, 0X3C, 0XDC, 0X6D, 0XBF, 0XD7, 0XBF, 0XD7, 0XDF, 0XD7, 0XDF, 0XD7, 0XFF, 0XA6, 0XFC, 0X3C, 0X5E,
    0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X7F, 0X45, 0X3F, 0X3D, 0X3F, 0X3D, 0X5E, 0X3D, 0X3D, 0X3D, 0X1A, 0X55, 0XDF, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X7C, 0X65,
    0X5E, 0X45, 0X5F, 0X3D, 0X5E, 0X3D, 0XDB, 0X44, 0X3D, 0X8E, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XFF, 0XDF, 0XEF, 0XBC, 0X75, 0X3E,
    0X45, 0X5F, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0XFB, 0X4C, 0X1E, 0XBF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XFF, 0XEF, 0XDA, 0X44, 0X5E, 0X3D, 0X3E, 0X3D,
    0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0XFC, 0X3C, 0X3C, 0X96, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X3D, 0XD7, 0X9C, 0XAE, 0X1C,
    0X8E, 0X5D, 0X3D, 0X5F, 0X35, 0X5D, 0X3D, 0XFC, 0X44, 0XBE, 0XAE, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XEF, 0XFA, 0X4C, 0X3D, 0X45, 0X3E, 0X45, 0X5E, 0X3D,
    0X3E, 0X3D, 0X5E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0XFB, 0X44, 0X7C, 0XAE, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X7B, 0X65, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F,
    0X3D, 0X1D, 0X45, 0X5C, 0X65, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9D, 0XA6, 0X1D, 0X3D, 0X5E, 0X3D, 0X7E, 0X3D,
    0X3E, 0X45, 0X3D, 0X45, 0X9A, 0X7D, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XDC, 0X7D, 0XFC, 0X3C, 0X5E, 0X3D, 0X3F, 0X3D, 0X7E, 0X3D, 0X5E,
    0X3D, 0X3E, 0X45, 0XD9, 0X4C, 0X1E, 0XC7, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XBB, 0X8D, 0XBB, 0X44, 0X5C, 0X55, 0X3D, 0X35, 0X5F, 0X3D,
    0X3D, 0X45, 0X5A, 0X6D, 0X9F, 0XD7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XF7, 0XFC, 0X8D, 0XBA, 0X3C, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X3E, 0X3D, 0X3E,
    0X3D, 0X5E, 0X45, 0X3D, 0X3D, 0X1D, 0X3D, 0X1D, 0X45, 0XD8, 0X64, 0XFF, 0XF7, 0XFF, 0XFF, 0X9F, 0XDF, 0X7B, 0X65, 0X5E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X79, 0X3C,
    0XBF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XFF, 0X9F, 0XD7, 0X79, 0X3C, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0XFB, 0X3C, 0X9D,
    0XAE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XBE, 0XFB, 0X4C, 0X5F, 0X3D, 0X3E, 0X3D, 0X7E, 0X3D, 0X3E, 0X3D, 0XFD, 0X3C, 0X3D, 0X8E,
    0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XE7, 0X5B, 0X65, 0X5E, 0X45, 0X3E, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0XDB, 0X44, 0XBE, 0XBE, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XBF, 0XDF, 0X7B, 0X6D, 0X3D, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X7E, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0X5E, 0X45,
    0X5E, 0X3D, 0X3E, 0X45, 0X99, 0X44, 0X9F, 0XD7, 0XFF, 0XFF, 0XBF, 0XDF, 0X7B, 0X65, 0X7E, 0X3D, 0X7E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0XDA, 0X44, 0X1E, 0XC7, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X97, 0X5C, 0X3D, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X99, 0X3C, 0XBF, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XF7, 0X7A, 0X75, 0X3F, 0X3D, 0X5D, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0XBB, 0X3C, 0X7F, 0XCF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X9D, 0XAE, 0XFB, 0X44, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5D, 0X45, 0X58, 0X3C, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X1C, 0X96, 0X1C, 0X45, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5F, 0X45, 0X5F, 0X35, 0X3E, 0X45, 0XFC,
    0X44, 0X9D, 0XA6, 0XFF, 0XFF, 0X9F, 0XDF, 0X5B, 0X65, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X1C, 0X45, 0XDB, 0X7D, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XBE, 0XDB, 0X44, 0X5E, 0X3D, 0X1D, 0X45, 0X3B, 0X65, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X7E, 0XA6, 0X1C, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0XFC, 0X3C, 0X5B, 0X65, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XF7, 0X1B, 0X5D, 0X1D, 0X3D, 0X5D, 0X45, 0XFC, 0X34, 0X7E, 0X45, 0XFB, 0X44, 0X1C, 0X86, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XEF, 0X98, 0X4C, 0X3D, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X3D, 0X3D, 0XFB, 0X85, 0XFF, 0XFF,
    0X9F, 0XE7, 0X5C, 0X65, 0X5F, 0X45, 0X5F, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0XFA, 0X54, 0X1E, 0XC7, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XE7, 0X7B, 0X5D, 0X3D, 0X3D, 0XDA, 0X44, 0X3C, 0X96, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0X9F, 0XD7, 0X78, 0X44, 0X5E, 0X3D, 0X5E, 0X3D, 0XDA, 0X4C, 0X7D, 0XA6, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XBF, 0XDF, 0XBA, 0X34, 0X5E,
    0X3D, 0X3E, 0X45, 0XBC, 0X34, 0X3E, 0X45, 0XFA, 0X54, 0XFE, 0XC6, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XF7,
    0X7C, 0XA6, 0XFB, 0X44, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0XBB, 0X7D, 0XFF, 0XF7, 0X9F, 0XE7, 0X5C, 0X65, 0X5F,
    0X45, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X1E, 0X3D, 0XFC, 0X3C, 0X9D, 0X9E, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XEF,
    0XFB, 0X85, 0X3D, 0X45, 0X5B, 0X65, 0X7F, 0XD7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X19, 0X6D, 0X1D,
    0X45, 0X3D, 0X3D, 0X7B, 0X75, 0XBF, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X3C, 0X9E, 0X3D, 0X3D, 0X3E, 0X3D, 0X5F, 0X45, 0X5E, 0X3D,
    0X3D, 0X45, 0XBB, 0X7D, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XEF, 0X7B, 0X6D, 0X7E,
    0X45, 0X3E, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X7B, 0X65, 0X9F, 0XE7, 0X9F, 0XE7, 0X5C, 0X65, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45,
    0X3E, 0X45, 0X5E, 0X45, 0X1D, 0X3D, 0XBC, 0X7D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9C, 0XAE, 0XBA, 0X4C, 0XBC,
    0X7D, 0XDF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XC6, 0XFB, 0X4C, 0XFB, 0X44, 0X3C, 0X9E,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X5E, 0XD7, 0X39, 0X6D, 0X5D, 0X4D, 0X3E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0XB9, 0X44, 0X1E, 0XC7, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X5C, 0X9E, 0XFB, 0X44, 0X5E, 0X45, 0X5F, 0X3D,
    0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5F, 0X3D, 0X7E, 0X3D, 0X7B, 0X65, 0X9F, 0XDF, 0X9F, 0XDF, 0X7B, 0X65, 0X5E, 0X3D, 0X5E, 0X3D, 0X5D, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0X7E,
    0X45, 0XB9, 0X4C, 0XFF, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XDF, 0X36, 0X44, 0XDE, 0XAE, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XEF, 0X7B, 0X75, 0X77, 0X44, 0XBF, 0XD7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X3B, 0XAE, 0X9A, 0X6D, 0X9D, 0X5D, 0XFC, 0X3C, 0X7F, 0X3D, 0X3D, 0X45, 0X36, 0X4C, 0XFF, 0XF7, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0X9F, 0XDF, 0X37, 0X3C, 0X5E, 0X45, 0X5F, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E,
    0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XDF, 0X9F, 0XDF, 0X7B, 0X65, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0XBA, 0X3C, 0X5F, 0XB7,
    0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X17, 0X7D, 0XBF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XDA, 0X9D, 0X79, 0X85, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XDF, 0XEF, 0X58, 0X85, 0XBD, 0XAE, 0X7A, 0X6D, 0X9E, 0X55, 0X3E, 0X3D, 0XDB, 0X44, 0X1F, 0XBF, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XFF, 0XB6, 0XBB, 0X44, 0X3E, 0X3D, 0X3E, 0X3D, 0X5F, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X7B, 0X65, 0X7F, 0XDF, 0X9F, 0XDF, 0X7B, 0X65, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X3C, 0X45, 0XF9, 0X54, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X5E, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XBB, 0XCE, 0X7F, 0XDF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XBF, 0XDF, 0X38, 0X7D, 0XFA,
    0X9D, 0XBD, 0X9E, 0X1B, 0X4D, 0X3D, 0X45, 0X7B, 0X65, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XEF, 0XF9, 0X5C, 0X3D, 0X3D, 0X5F, 0X45, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XDF, 0X9F,
    0XDF, 0X7B, 0X65, 0X5F, 0X45, 0X5E, 0X3D, 0X3E, 0X3D, 0X3F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0XDA, 0X44, 0XFD, 0XC6, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF, 0XD6, 0X74, 0X5D, 0X96, 0XBB, 0X7D, 0XDA, 0X8D, 0X9C, 0X6D,
    0XFB, 0X4C, 0X3B, 0X9E, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X5D, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9D, 0XA6, 0XDB, 0X44, 0X3D, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5F, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XBF, 0XE7, 0X5B, 0X6D, 0X3E, 0X45,
    0X7E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0XFB, 0X44, 0X5C, 0X9E, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XDE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XDD, 0XBE, 0XDF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X5E, 0XD7, 0X53, 0X64, 0X9C, 0X9E, 0X5D, 0X96, 0X1A, 0X96, 0X1C, 0X8E, 0X75, 0X54, 0X1E, 0XD7, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XBF, 0XE7, 0X95, 0X5C, 0XDF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDE, 0XFF,
    0X9E, 0XDF, 0X3A, 0X6D, 0X3C, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5B, 0X65, 0X9F, 0XDF, 0XFF, 0XEF, 0XDC, 0X7D, 0X1E, 0X45, 0X7E, 0X45, 0X5E, 0X3D, 0X5E,
    0X3D, 0X3E, 0X45, 0X5F, 0X3D, 0X3E, 0X3D, 0X5D, 0X45, 0XBC, 0X75, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XDF, 0XF7, 0XFF, 0XFF, 0XDF, 0XE7, 0XD7, 0X64, 0XDF, 0XEF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XF9, 0X9D, 0X5E, 0XBF, 0X5B, 0XA6, 0XDA, 0X8D, 0X9B, 0X9E, 0X3B, 0XA6, 0X7F, 0XD7, 0XFF, 0XF7, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X9C, 0XAE, 0XD9, 0X4C, 0X7D, 0X9E, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X3F, 0XBF, 0XDB,
    0X44, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XF7, 0XFC, 0X85, 0X1E, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5D, 0X3D, 0X3B, 0X55, 0XDF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XF7, 0X9D, 0XA6, 0XBA, 0X44, 0X3B, 0XA6, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XDF, 0XF7, 0X3A, 0XA6, 0X1E, 0XBF, 0XBA, 0X8D, 0XDA, 0X8D, 0XDA, 0X8D, 0XBC, 0XC6, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XEF, 0XBB, 0X7D, 0X1C, 0X4D, 0X3B, 0X6D, 0X9F, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XEF, 0XFA, 0X4C, 0X3E, 0X3D, 0X5F, 0X3D,
    0X5E, 0X45, 0X5F, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0X3C, 0X96, 0XFD, 0X3C, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X7E, 0X45, 0XFB,
    0X44, 0XBE, 0XB6, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDE, 0XFF, 0XFF, 0XEF, 0XD9, 0X5C, 0X1D, 0X3D,
    0X97, 0X4C, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F, 0XE7, 0X3A, 0XA6, 0X75,
    0X5C, 0X1B, 0X9E, 0X5C, 0X9E, 0X18, 0X7D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF, 0XBF, 0XE7, 0XFC, 0X4C, 0X3E, 0X45,
    0XDA, 0X44, 0X1D, 0X8E, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X1C, 0X8E, 0XDB, 0X3C, 0X7F, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5B,
    0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XBE, 0XAE, 0XFC, 0X44, 0X5E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X1D, 0X45, 0XB7, 0X5C, 0XFF, 0XEF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X3F, 0XC7, 0XB9, 0X4C, 0X3D, 0X45, 0XB9, 0X3C, 0X5F, 0XC7, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XEF, 0X17, 0X7D, 0X3D, 0X96, 0XDA, 0X95, 0X5C, 0XA6, 0XDA, 0X8D,
    0X1D, 0XCF, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XDE, 0XFF, 0XFF, 0XF7, 0XF7, 0X74, 0XFC, 0X44, 0X3E, 0X45, 0X5D, 0X45, 0XB9, 0X4C, 0XFF,
    0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XBF, 0XDF, 0X7C, 0X6D, 0X3E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF,
    0XBE, 0XB6, 0XDB, 0X4C, 0X5D, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3D, 0X45, 0X99, 0X44, 0XBF, 0XD7, 0XFE, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X3C, 0X9E, 0X1C, 0X45, 0X3E, 0X45, 0X3D, 0X45, 0X1C, 0X8E, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XBF, 0XD7, 0X76, 0X4C, 0X5B, 0X65, 0X9F, 0XD7, 0XB9, 0X8D, 0X16, 0X7D, 0XFF, 0XF7, 0XDF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XDF, 0X97, 0X4C, 0X5D, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0XDB, 0X3C, 0XFE, 0XC6, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X1C, 0X96, 0XFD, 0X3C, 0X3E, 0X45, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XE7, 0X58, 0X44, 0X5E,
    0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5D, 0X3D, 0X5E, 0X3D, 0XFC, 0X44, 0X3D, 0X96, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XBF, 0XE7, 0X7B, 0X6D, 0X5E, 0X3D, 0X5E, 0X3D, 0X1E, 0X3D, 0X7B, 0X6D, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFB, 0X95, 0X1B, 0X45, 0XBD, 0X65, 0X9B, 0X75, 0XBA, 0X7D, 0X3B, 0X9E, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFB, 0X8D, 0X1C, 0X3D, 0X5F, 0X45, 0X3E, 0X3D, 0X5D, 0X3D, 0X9A, 0X3C, 0X9F, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0X3E, 0XCF, 0X1B, 0X55, 0X5F, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X7B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XE7, 0X78, 0X4C, 0X3D, 0X3D, 0X7F, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X3D, 0X45, 0XBB, 0X7D, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XF7, 0XFE, 0XB6, 0X1B, 0X4D, 0X7E, 0X3D, 0X5F, 0X3D, 0X7E, 0X45, 0XDA, 0X4C, 0XBD, 0XAE, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF,
    0XBF, 0XE7, 0X7B, 0X6D, 0X3D, 0X3D, 0X1C, 0X3D, 0XBC, 0X6D, 0X3B, 0X96, 0X1E, 0XCF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9F,
    0XD7, 0X7B, 0X6D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X1D, 0X45, 0X1A, 0X5D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFC, 0X7D,
    0XFB, 0X44, 0X1E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XEF, 0X7A, 0X7D, 0X1C, 0X45, 0X3E, 0X35, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3D, 0X45, 0X3B, 0X65, 0X7F, 0XD7, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XBC, 0X75, 0XFC, 0X3C,
    0X3E, 0X35, 0X3F, 0X3D, 0X5D, 0X45, 0XFC, 0X44, 0X9B, 0X6D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XBD, 0XA6, 0XDB, 0X44, 0X5F,
    0X45, 0X3D, 0X3D, 0X7C, 0X55, 0X99, 0X85, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDB, 0X85, 0XBA, 0X44, 0X1D, 0X3D,
    0X3E, 0X45, 0X3F, 0X3D, 0XDB, 0X44, 0X5C, 0X8E, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X79, 0X3C, 0X3E, 0X45, 0X7F, 0X45, 0X5E,
    0X3D, 0X5F, 0X3D, 0X7B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0X1E, 0XC7, 0X1B, 0X45, 0X3E, 0X3D, 0X5F, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45,
    0X5D, 0X45, 0XDB, 0X44, 0XFC, 0X8D, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XBA, 0X44, 0X3D, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X1D,
    0X45, 0X3E, 0X3D, 0XBA, 0X44, 0XFF, 0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X7B, 0X65, 0X1C, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0XDB, 0X3C,
    0XDF, 0XAE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X1A, 0X5D, 0X3D, 0X45, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5B,
    0X65, 0X5F, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X7C, 0XAE, 0XFB, 0X44, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X7B, 0X65,
    0X9F, 0XE7, 0XFF, 0XFF, 0XDF, 0XFF, 0XDF, 0XEF, 0X7B, 0X5D, 0X5E, 0X3D, 0X3E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X3D, 0X3D, 0X5E, 0X45, 0X3B,
    0X5D, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X5F, 0XD7, 0XBB, 0X3C, 0X5E, 0X3D, 0X5F, 0X3D, 0X5D, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0XDB, 0X3C,
    0X1F, 0XBF, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X99, 0X34, 0X5E, 0X45, 0X5E, 0X45, 0X3D, 0X3D, 0X5D, 0X45, 0XDB, 0X7D, 0XFF, 0XFF, 0XFE,
    0XFF, 0XDE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X1F, 0XCF, 0X9A, 0X44, 0X5E, 0X3D, 0X5F, 0X45, 0X3E, 0X45, 0X1D, 0X3D, 0X1B, 0X86, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X1E, 0XC7, 0XF9, 0X4C, 0X7E, 0X45, 0X1F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X7B, 0X65, 0X9F, 0XE7, 0XDF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XEF, 0X1C, 0X8E, 0X3D, 0X45, 0X5E, 0X45, 0X3D, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5F, 0X3D, 0X99, 0X3C, 0XBF, 0XE7, 0XDF, 0XFF,
    0XFF, 0XFF, 0XFE, 0XFF, 0XDF, 0XFF, 0XFF, 0XEF, 0XFC, 0X85, 0X3D, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3D, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X3D, 0X45, 0X7A, 0X75, 0XBF, 0XE7, 0XFF,
    0XFF, 0XFE, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X9D, 0XAE, 0XDC, 0X3C, 0X5E, 0X3D, 0X3D, 0X45, 0X5D, 0X45, 0X3E, 0X45, 0X5B, 0X65, 0X9F, 0XE7, 0XFE, 0XFF, 0XFE, 0XFF, 0XDE, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XEF, 0XBC, 0X7D, 0X3C, 0X45, 0X3D, 0X3D, 0X5E, 0X3D, 0X3D, 0X45, 0X99, 0X3C, 0X7F, 0XCF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XF7, 0XDB, 0X85, 0X1C, 0X3D, 0X3E, 0X3D, 0X5F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFD, 0XBE,
    0XBA, 0X44, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5F, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X3E, 0X3D, 0X7F, 0X3D, 0XDC, 0X3C, 0X3F, 0XBF, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF, 0XF7, 0XFF,
    0XF7, 0X9F, 0XCF, 0X5B, 0X55, 0X5E, 0X45, 0X3F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3D, 0X45, 0XFA, 0X4C, 0X1F, 0XBF, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XF7,
    0XDF, 0XDF, 0X9B, 0X6D, 0X3D, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0XDB, 0X4C, 0XFE, 0XB6, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE,
    0XB6, 0XFB, 0X44, 0X3E, 0X3D, 0XBE, 0X55, 0XBA, 0X44, 0XDC, 0X44, 0X56, 0X54, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XDF, 0XE7, 0XD9, 0X4C,
    0X3E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XF7, 0X3D, 0X8E, 0XFB, 0X3C, 0X5F,
    0X3D, 0X5E, 0X45, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X3E, 0X3D, 0X3C, 0X4D, 0X7C, 0X5D, 0X5B, 0X55, 0X3B, 0X5D, 0X5B, 0X5D, 0X3C, 0X55, 0X3D, 0X45,
    0X5D, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X3F, 0X3D, 0X5D, 0X4D, 0X3A, 0X55, 0X3C, 0X5D, 0X3B, 0X5D, 0X3D, 0X55, 0X1C, 0X3D, 0X5D,
    0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X3F, 0X45, 0X7F, 0X45, 0X5E, 0X3D, 0XDC, 0X3C, 0X7A, 0X34, 0X79, 0X34, 0X79, 0X3C, 0X79, 0X34, 0X9A, 0X3C, 0XBB, 0X3C, 0X5E, 0X45, 0X1D, 0X3D,
    0XFD, 0X85, 0XFF, 0XE7, 0XD9, 0X95, 0X7F, 0XD7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XF8, 0X64, 0X1C, 0X45, 0X3E, 0X3D, 0X3E, 0X3D, 0X5E,
    0X3D, 0X7F, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XBF, 0XDF, 0XD9, 0X4C, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45,
    0X3E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X3E, 0X3D, 0X1E, 0X45, 0X3D, 0X3D, 0X1E, 0X45, 0X1D, 0X45, 0X1D, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E,
    0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X3E, 0X3D, 0X1D, 0X3D, 0X3E, 0X3D, 0X3D, 0X3D, 0X3D, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X3D,
    0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5D, 0X45, 0X1D, 0X3D, 0XDD, 0X7D, 0XFF, 0XF7, 0X9F,
    0XEF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XC6, 0XDB, 0X44, 0X5E, 0X45, 0X1E, 0X45, 0X5D, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X1C, 0X8E, 0X1C, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X7F, 0X45, 0X5E, 0X3D, 0X3E,
    0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X3E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X3D, 0X3E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D,
    0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E,
    0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X1E, 0X35, 0XDD, 0X7D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XDE, 0XFF, 0XFF, 0XF7, 0XDB, 0X7D, 0X1D, 0X3D, 0X3E, 0X45, 0X3D, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5B, 0X65, 0X9F,
    0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X7E, 0XD7, 0X1A, 0X5D, 0X3E, 0X45, 0X5F, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45,
    0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X3E, 0X45,
    0X5E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X3F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X1E, 0X3D, 0XDC, 0X7D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0X3E, 0XD7, 0X1A, 0X5D, 0X1C, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X7B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDD, 0XB6, 0XFB, 0X4C, 0X3D, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45,
    0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3D, 0X45, 0X3D, 0X45, 0X5E, 0X3D, 0X3E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F,
    0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X1D, 0X3D, 0XDC, 0X85, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XF7, 0X9F, 0XD7,
    0X9C, 0X65, 0X3D, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5F, 0X3D, 0X5F, 0X35, 0X5F, 0X3D, 0X5F, 0X3D, 0X7B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XEF, 0X39, 0X65, 0X1D, 0X3D, 0X5F, 0X3D, 0X3E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D,
    0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X3E, 0X3D, 0X5E, 0X45,
    0X5E, 0X3D, 0X1D, 0X3D, 0XDC, 0X85, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X3C, 0X96, 0XFB, 0X3C, 0X5E, 0X45, 0X5E,
    0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5F, 0X3D, 0X5E, 0X45, 0X5F, 0X3D, 0X7B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0X3E, 0XC7, 0X1A, 0X55, 0X3E, 0X3D, 0X5F, 0X45, 0X3F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X3E, 0X45, 0X3D, 0X45, 0X3D, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E,
    0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X3E, 0X45,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X3D, 0X1D, 0X3D, 0XDC,
    0X7D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XDA, 0X8D, 0X1C, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X45, 0X3D, 0X45, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDE, 0XB6, 0X99,
    0X44, 0X3E, 0X45, 0X3E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3D, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45,
    0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X1D, 0X3D, 0XDC, 0X7D, 0XFF, 0XEF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X3E, 0XCF, 0X59, 0X6D, 0XFB, 0X3C, 0X7F, 0X3D, 0X3E, 0X35, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XEF, 0X7D, 0XA6, 0XDA, 0X54, 0X3E, 0X45,
    0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X1D, 0X3D, 0XFC, 0X85, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X7F,
    0XD7, 0X19, 0X5D, 0XFB, 0X44, 0X3E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X9D, 0XAE, 0XFB, 0X4C, 0X5E, 0X3D, 0X3E, 0X35, 0X7F,
    0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X1D, 0X3D, 0XDC, 0X7D, 0XFF, 0XF7, 0XFF, 0XFF, 0XFF, 0XF7, 0XBD, 0XB6, 0X99, 0X44, 0X3D, 0X45, 0X1D, 0X3D,
    0X5F, 0X45, 0X3E, 0X45, 0X3D, 0X3D, 0X5D, 0X45, 0X5D, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XEF, 0XDB, 0X8D, 0XD9, 0X4C, 0X3D, 0X45, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D,
    0X3E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X1D, 0X3D, 0XDC, 0X7D, 0XFF, 0XEF, 0XFF, 0XEF, 0X3C, 0X9E, 0X1B, 0X4D, 0X1D, 0X3D, 0X5F, 0X35, 0X5F, 0X3D, 0X3F, 0X3D, 0X3E, 0X45, 0X5E,
    0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X3C, 0X96, 0XDA, 0X4C, 0X1D, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5F,
    0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5F,
    0X3D, 0X1D, 0X3D, 0XDC, 0X7D, 0XDF, 0XE7, 0X1C, 0X8E, 0XDB, 0X44, 0X3D, 0X45, 0X5F, 0X3D, 0X5F, 0X35, 0X7F, 0X45, 0X3E, 0X45, 0X3D, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5F, 0X45, 0X3F, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0X1E, 0XBF, 0XFB, 0X54, 0XFC, 0X44, 0X5F, 0X45, 0X3E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X3D, 0X3D, 0XDD, 0X6D,
    0X3E, 0X7E, 0XDA, 0X44, 0X5D, 0X45, 0X5E, 0X3D, 0X3D, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5D, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E,
    0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XDF, 0XF7, 0XFF, 0XFF, 0X1E, 0XBF, 0X1A, 0X5D, 0XFC, 0X3C, 0X3E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X7E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E, 0X3D, 0X3E,
    0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5D, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D,
    0X7B, 0X65, 0X9F, 0XE7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XEF, 0X1B, 0X96, 0X1B, 0X55, 0X1D, 0X3D, 0X5E, 0X45, 0X3E, 0X3D, 0X5F, 0X3D, 0X3E, 0X3D, 0X5E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5D, 0X45, 0X5F, 0X3D, 0X5F, 0X35, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5D, 0X45, 0X5E, 0X45, 0X5F, 0X45, 0X7F, 0X3D, 0X7B, 0X65, 0X9F, 0XE7, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XF7, 0X3E, 0XC7, 0X5D, 0X96, 0X98, 0X4C, 0X1C, 0X45, 0X3E, 0X3D, 0X5F, 0X45, 0X5E, 0X45, 0X3E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5D, 0X45, 0X5D, 0X45, 0X5E, 0X45, 0X3F, 0X45, 0X5E, 0X3D, 0X7B, 0X65, 0X9F, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XF7, 0X9F, 0XCF, 0X7A, 0X6D, 0XDA, 0X44, 0X1D, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3D, 0X3D, 0X5E, 0X3D, 0X3F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45,
    0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E,
    0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5D, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D,
    0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5B, 0X65, 0X9F, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XEF, 0X9C, 0XB6, 0XDC, 0X7D, 0XFA, 0X44, 0XFC, 0X44, 0X1D, 0X45, 0X3D, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X45, 0X5E, 0X3D,
    0X5F, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X3E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5F, 0X3D, 0X5F, 0X3D, 0X7B, 0X65, 0X9F, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XF7, 0XDF, 0XDF, 0X1B, 0X96, 0XF8, 0X64, 0X99, 0X44, 0XFB, 0X44, 0X1D, 0X3D, 0X1D, 0X3D, 0X3D, 0X45, 0X3D, 0X45, 0X3D, 0X45, 0X3E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X3E, 0X45,
    0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X3E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5F, 0X3D, 0X5E, 0X3D, 0X5E,
    0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X45, 0X5E, 0X3D, 0X5E, 0X3D, 0X5E, 0X45, 0X5E, 0X45, 0X3E, 0X45, 0X3E, 0X45,
    0X5F, 0X3D, 0X7E, 0X3D, 0X7B, 0X5D, 0X9F, 0XD7, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XEF, 0X7F, 0XCF, 0XFF, 0XB6, 0X3D, 0X9E, 0X1C, 0X96, 0XBB, 0X7D, 0X9B, 0X75, 0X7B, 0X65, 0X7B, 0X65, 0X7B, 0X65, 0X7B, 0X65, 0X5C, 0X65, 0X5C, 0X65, 0X7C, 0X65, 0X7C,
    0X65, 0X7C, 0X65, 0X5C, 0X65, 0X7C, 0X65, 0X7C, 0X65, 0X5C, 0X65, 0X7C, 0X65, 0X7C, 0X65, 0X7B, 0X65, 0X5C, 0X65, 0X5C, 0X65, 0X7C, 0X65, 0X7C, 0X65, 0X5C, 0X65, 0X7C, 0X65,
    0X5C, 0X65, 0X5C, 0X65, 0X5B, 0X65, 0X7C, 0X65, 0X5C, 0X65, 0X7C, 0X65, 0X7C, 0X65, 0X7B, 0X65, 0X5B, 0X65, 0X5B, 0X65, 0X5B, 0X65, 0X5B, 0X65, 0X7B, 0X65, 0X5B, 0X65, 0XBA,
    0X7D, 0X9F, 0XDF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
    0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XF7, 0XDF, 0XEF, 0X7F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF,
    0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0XBF, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F,
    0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0XBF, 0XDF, 0X9F, 0XDF, 0X9F, 0XDF, 0X9F, 0XE7, 0XFF, 0XFF,
};

/*******************************************************************************
function:
    Hardware reset
*******************************************************************************/
static void LCD_2IN_Reset(void)
{
    DEV_Digital_Write(LCD_CS, 1);
    DEV_Delay_ms(1);
    DEV_Digital_Write(LCD_RST, 0);
    DEV_Delay_ms(1);
    DEV_Digital_Write(LCD_RST, 1);
    DEV_Delay_ms(1);
}

/*******************************************************************************
function:
        Write data and commands
*******************************************************************************/
static void LCD_2IN_Write_Command(UBYTE data)
{
    DEV_Digital_Write(LCD_DC, 0);
    DEV_SPI_WriteByte(data);
}

static void LCD_2IN_WriteData_Byte(UBYTE data)
{
    DEV_Digital_Write(LCD_DC, 1);
    DEV_SPI_WriteByte(data);
}

void LCD_2IN_WriteData_Word(UWORD data)
{
    DEV_Digital_Write(LCD_DC, 1);
    DEV_SPI_WriteByte((data >> 8) & 0xff);
    DEV_SPI_WriteByte(data);
}

/******************************************************************************
function:
        Common register initialization
******************************************************************************/
void LCD_2IN_Init(void)
{
    LCD_2IN_Write_Command(0x36);
    LCD_2IN_WriteData_Byte(0x00);

    LCD_2IN_Write_Command(0x3A);
    LCD_2IN_WriteData_Byte(0x05);

    LCD_2IN_Write_Command(0x21);

    LCD_2IN_Write_Command(0x2A);
    LCD_2IN_WriteData_Byte(0x00);
    LCD_2IN_WriteData_Byte(0x00);
    LCD_2IN_WriteData_Byte(0x01);
    LCD_2IN_WriteData_Byte(0x3F);

    LCD_2IN_Write_Command(0x2B);
    LCD_2IN_WriteData_Byte(0x00);
    LCD_2IN_WriteData_Byte(0x00);
    LCD_2IN_WriteData_Byte(0x00);
    LCD_2IN_WriteData_Byte(0xEF);

    LCD_2IN_Write_Command(0xB2);
    LCD_2IN_WriteData_Byte(0x0C);
    LCD_2IN_WriteData_Byte(0x0C);
    LCD_2IN_WriteData_Byte(0x00);
    LCD_2IN_WriteData_Byte(0x33);
    LCD_2IN_WriteData_Byte(0x33);

    LCD_2IN_Write_Command(0xB7);
    LCD_2IN_WriteData_Byte(0x35);

    LCD_2IN_Write_Command(0xBB);
    LCD_2IN_WriteData_Byte(0x1F);

    LCD_2IN_Write_Command(0xC0);
    LCD_2IN_WriteData_Byte(0x2C);

    LCD_2IN_Write_Command(0xC2);
    LCD_2IN_WriteData_Byte(0x01);

    LCD_2IN_Write_Command(0xC3);
    LCD_2IN_WriteData_Byte(0x12);

    LCD_2IN_Write_Command(0xC4);
    LCD_2IN_WriteData_Byte(0x20);

    LCD_2IN_Write_Command(0xC6);
    LCD_2IN_WriteData_Byte(0x0F);

    LCD_2IN_Write_Command(0xD0);
    LCD_2IN_WriteData_Byte(0xA4);
    LCD_2IN_WriteData_Byte(0xA1);

    LCD_2IN_Write_Command(0xE0);
    LCD_2IN_WriteData_Byte(0xD0);
    LCD_2IN_WriteData_Byte(0x08);
    LCD_2IN_WriteData_Byte(0x11);
    LCD_2IN_WriteData_Byte(0x08);
    LCD_2IN_WriteData_Byte(0x0C);
    LCD_2IN_WriteData_Byte(0x15);
    LCD_2IN_WriteData_Byte(0x39);
    LCD_2IN_WriteData_Byte(0x33);
    LCD_2IN_WriteData_Byte(0x50);
    LCD_2IN_WriteData_Byte(0x36);
    LCD_2IN_WriteData_Byte(0x13);
    LCD_2IN_WriteData_Byte(0x14);
    LCD_2IN_WriteData_Byte(0x29);
    LCD_2IN_WriteData_Byte(0x2D);

    LCD_2IN_Write_Command(0xE1);
    LCD_2IN_WriteData_Byte(0xD0);
    LCD_2IN_WriteData_Byte(0x08);
    LCD_2IN_WriteData_Byte(0x10);
    LCD_2IN_WriteData_Byte(0x08);
    LCD_2IN_WriteData_Byte(0x06);
    LCD_2IN_WriteData_Byte(0x06);
    LCD_2IN_WriteData_Byte(0x39);
    LCD_2IN_WriteData_Byte(0x44);
    LCD_2IN_WriteData_Byte(0x51);
    LCD_2IN_WriteData_Byte(0x0B);
    LCD_2IN_WriteData_Byte(0x16);
    LCD_2IN_WriteData_Byte(0x14);
    LCD_2IN_WriteData_Byte(0x2F);
    LCD_2IN_WriteData_Byte(0x31);
    LCD_2IN_Write_Command(0x21);

    LCD_2IN_Write_Command(0x11);

    LCD_2IN_Write_Command(0x29);
}

/******************************************************************************
function:    Set the cursor position
parameter    :
      Xstart:     Start UWORD x coordinate
      Ystart:    Start UWORD y coordinate
      Xend  :    End UWORD coordinates
      Yend  :    End UWORD coordinatesen
******************************************************************************/
void LCD_2IN_SetWindow(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend)
{
    LCD_2IN_Write_Command(0x2a);
    LCD_2IN_WriteData_Byte(Xstart >> 8);
    LCD_2IN_WriteData_Byte(Xstart & 0xff);
    LCD_2IN_WriteData_Byte((Xend - 1) >> 8);
    LCD_2IN_WriteData_Byte((Xend - 1) & 0xff);

    LCD_2IN_Write_Command(0x2b);
    LCD_2IN_WriteData_Byte(Ystart >> 8);
    LCD_2IN_WriteData_Byte(Ystart & 0xff);
    LCD_2IN_WriteData_Byte((Yend - 1) >> 8);
    LCD_2IN_WriteData_Byte((Yend - 1) & 0xff);

    LCD_2IN_Write_Command(0x2C);
}

/******************************************************************************
function:    Settings window
parameter    :
      Xstart:     Start UWORD x coordinate
      Ystart:    Start UWORD y coordinate

******************************************************************************/
void LCD_2IN_SetCursor(UWORD X, UWORD Y)
{
    LCD_2IN_Write_Command(0x2a);
    LCD_2IN_WriteData_Byte(X >> 8);
    LCD_2IN_WriteData_Byte(X);
    LCD_2IN_WriteData_Byte(X >> 8);
    LCD_2IN_WriteData_Byte(X);

    LCD_2IN_Write_Command(0x2b);
    LCD_2IN_WriteData_Byte(Y >> 8);
    LCD_2IN_WriteData_Byte(Y);
    LCD_2IN_WriteData_Byte(Y >> 8);
    LCD_2IN_WriteData_Byte(Y);

    LCD_2IN_Write_Command(0x2C);
}

/******************************************************************************
function:    Clear screen function, refresh the screen to a certain color
parameter    :
      Color :        The color you want to clear all the screen
******************************************************************************/
void LCD_2IN_Clear(UWORD Color)
{
    UWORD i;
    UWORD image[LCD_2IN_WIDTH];
    for (i = 0; i < LCD_2IN_WIDTH; i++) {
        image[i] = Color >> 8 | (Color & 0xff) << 8;
    }
    UBYTE *p = (UBYTE *)(image);
    LCD_2IN_SetWindow(0, 0, LCD_2IN_WIDTH, LCD_2IN_HEIGHT);
    DEV_Digital_Write(LCD_DC, 1);
    for (i = 0; i < LCD_2IN_HEIGHT; i++) {
        DEV_SPI_Write_nByte(p, LCD_2IN_WIDTH * 2);
    }
}

/******************************************************************************
function:    Refresh a certain area to the same color
parameter    :
      Xstart: Start UWORD x coordinate
      Ystart:    Start UWORD y coordinate
      Xend  :    End UWORD coordinates
      Yend  :    End UWORD coordinates
      color :    Set the color
******************************************************************************/
void LCD_2IN_ClearWindow(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD color)
{
    UWORD i, j;
    LCD_2IN_SetWindow(Xstart, Ystart, Xend - 1, Yend - 1);
    for (i = Ystart; i <= Yend - 1; i++) {
        for (j = Xstart; j <= Xend - 1; j++) {
            LCD_2IN_WriteData_Word(color);
        }
    }
}

/******************************************************************************
function: Show a picture
parameter    :
        image: Picture buffer
******************************************************************************/
void lcd_spi_display(int x, int y, UBYTE *image, int width, int height)
{
    LCD_2IN_SetWindow(x, y, x + width, y + height);
    DEV_Digital_Write(LCD_DC, 1);

    spi_master_write_dma_plus(GSPI_MODULE, SPI_WRITE_DATA_SINGLE_CMD, (unsigned int)NULL, (unsigned char *)image, width * 2 * height, SPI_MODE_WR_WRITE_ONLY);
}

/******************************************************************************
function: Draw a point
parameter    :
        X    :     Set the X coordinate
        Y    :    Set the Y coordinate
      Color :    Set the color
******************************************************************************/
void LCD_2IN_DrawPaint(UWORD x, UWORD y, UWORD Color)
{
    LCD_2IN_SetCursor(x, y);
    LCD_2IN_WriteData_Word(Color);
}

void lcd_spi_cfg(void)
{
    reg_gpio_func_mux(lcd_pin_config.spi_clk_pin)      = GSPI_CK_IO;
    reg_gpio_func_mux(lcd_pin_config.spi_csn_pin)      = GSPI_CN0_IO;
    reg_gpio_func_mux(lcd_pin_config.spi_mosi_io0_pin) = GSPI_MOSI_IO;

    spi_set_io_mode(GSPI_MODULE, SPI_SINGLE_MODE);
    reg_spi_ctrl3(GSPI_MODULE) |= (FLD_SPI_MASTER_MODE | FLD_SPI_AUTO_HREADY_EN);                          //master
    reg_spi_ctrl3(GSPI_MODULE) = ((reg_spi_ctrl3(GSPI_MODULE) & (~FLD_SPI_WORK_MODE)) | (SPI_MODE0 << 2)); // select SPI mode, support four modes.

    gpio_function_dis((gpio_pin_e)lcd_pin_config.spi_csn_pin);
    gpio_function_dis((gpio_pin_e)lcd_pin_config.spi_clk_pin);
    gpio_function_dis((gpio_pin_e)lcd_pin_config.spi_mosi_io0_pin);
}

void lcd_spi_cfg_disable(void)
{
    gpio_function_en((gpio_pin_e)lcd_pin_config.spi_csn_pin);
    gpio_function_en((gpio_pin_e)lcd_pin_config.spi_clk_pin);
    gpio_function_en((gpio_pin_e)lcd_pin_config.spi_mosi_io0_pin);
}

unsigned int lcd_spi_init(void)
{
    gpio_function_en(LCD_CS);
    gpio_output_en(LCD_CS);
    gpio_set_level(LCD_CS, 1);

    gpio_function_en(LCD_RST);
    gpio_output_en(LCD_RST);
    gpio_set_level(LCD_RST, 1);

    gpio_function_en(LCD_DC);
    gpio_output_en(LCD_DC);
    gpio_set_level(LCD_DC, 1);

    gpio_function_en(LCD_BL);
    gpio_output_en(LCD_BL);
    gpio_set_level(LCD_BL, 1);

    LCD_2IN_Reset();

    spi_master_init(GSPI_MODULE, sys_clk.pll_clk * 1000000 / SPI_CLK, SPI_MODE0);
    spi_cmd_dis(GSPI_MODULE);
    spi_addr_dis(GSPI_MODULE);
    spi_set_io_mode(GSPI_MODULE, SPI_SINGLE_MODE);
    spi_set_dummy_cnt(GSPI_MODULE, 0);
    spi_addr_fmt_dis(GSPI_MODULE);

    spi_set_tx_dma_config(GSPI_MODULE, GSPI_TX_DMA_CHN);

    gspi_set_pin(&lcd_pin_config);

    LCD_2IN_Init();

    LCD_2IN_Clear(0xf00f);

    spi_clr_irq_status(GSPI_MODULE, SPI_END_INT);

    int s = spi_get_irq_status(GSPI_MODULE, SPI_END_INT);

    lcd_spi_cfg_disable();

    return s;
}
